<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class M_Pedido_Subsidio extends Modelo {

    public $id = null;
    public $descripcion;
    public $usuarioId;
    public $fecha;

    function __construct() {
        parent::__construct();
        $this->tabla = 'pedido_subsidios';
    }

    function setAttributes($datos = array(), $tipo = 'object') {
        return parent::_setAttributes(__CLASS__, $datos, $tipo);
    }

    function doArray() {
        return parent::_doArray(__CLASS__);
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function getValidacion($demandados, $demandadosSeleccionados) {
        if (is_array($demandadosSeleccionados)) {
            foreach ($demandados as $demandado) {
                if (in_array($demandado->id, $demandadosSeleccionados)) {
                    $importe[] = array('field' => 'importe[' . $demandado->id . ']', 'label' => 'Importe para el demandado ' . $demandado->matricula, 'rules' => 'trim|money');
                    $motivo[] = array('field' => 'motivo[' . $demandado->id . ']', 'label' => 'Motivo para el demandado ' . $demandado->matricula, 'rules' => 'trim|required');
                }
            }
        }


        if (isset($importe)) {
            $valid = array_merge($importe, $motivo);
        } else {
            $valid = array(0 => array('field' => 'demandado[]', 'label' => 'demandado', 'rules' => 'required'));
            $this->form_validation->set_message('required', 'Por favor seleccione un Demandado Médico.');
        }
        return $valid;
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function valoresPorDefecto() {
        return array();
    }

    function getLista($causaId) {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.descripcion,
                ' . $this->tabla . '.fecha,
                demandados_x_pedido_subsidios.id dpsId,
                demandados_x_pedido_subsidios.importe,
                demandados_x_pedido_subsidios.motivo,
                demandados_x_pedido_subsidios.estado,
                demandados_x_pedido_subsidios.respuesta,
                medicos.matricula,
                medicos.nombre
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados_x_pedido_subsidios', 'demandados_x_pedido_subsidios.pedidoSubsidioId = ' . $this->tabla . '.id');
        $this->db->join('demandados', 'demandados_x_pedido_subsidios.demandadoId = demandados.id');
        $this->db->join('medicos', 'medicos.matricula = demandados.matricula');
        $this->db->join('causas', 'demandados.causaId = causas.id');
        $this->db->where('causas.id', $causaId);

        $results = $this->db->get();

        return $results->result_object();
    }

    function getListaPendientes() {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.descripcion,
                ' . $this->tabla . '.fecha,
                causas.id causaId,
                demandados_x_pedido_subsidios.id dpsId,
                demandados_x_pedido_subsidios.importe,
                demandados_x_pedido_subsidios.motivo,
                demandados_x_pedido_subsidios.estado,
                demandados_x_pedido_subsidios.respuesta,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados_x_pedido_subsidios', 'demandados_x_pedido_subsidios.pedidoSubsidioId = ' . $this->tabla . '.id');
        $this->db->join('demandados', 'demandados_x_pedido_subsidios.demandadoId = demandados.id');
        $this->db->join('medicos', 'medicos.matricula = demandados.matricula');
        $this->db->join('causas', 'demandados.causaId = causas.id');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where('demandados_x_pedido_subsidios.estado', 0);

        $results = $this->db->get();

        return $results->result_object();
    }
    
    function getListaRechazados() {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.descripcion,
                ' . $this->tabla . '.fecha,
                causas.id causaId,
                demandados_x_pedido_subsidios.id dpsId,
                demandados_x_pedido_subsidios.importe,
                demandados_x_pedido_subsidios.motivo,
                demandados_x_pedido_subsidios.estado,
                demandados_x_pedido_subsidios.respuesta,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados_x_pedido_subsidios', 'demandados_x_pedido_subsidios.pedidoSubsidioId = ' . $this->tabla . '.id');
        $this->db->join('demandados', 'demandados_x_pedido_subsidios.demandadoId = demandados.id');
        $this->db->join('medicos', 'medicos.matricula = demandados.matricula');
        $this->db->join('causas', 'demandados.causaId = causas.id');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where('demandados_x_pedido_subsidios.estado', 2);

        $results = $this->db->get();

        return $results->result_object();
    }
    
    function getListaAprobados() {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.descripcion,
                ' . $this->tabla . '.fecha,
                causas.id causaId,
                demandados_x_pedido_subsidios.id dpsId,
                demandados_x_pedido_subsidios.importe,
                demandados_x_pedido_subsidios.motivo,
                demandados_x_pedido_subsidios.estado,
                demandados_x_pedido_subsidios.respuesta,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados_x_pedido_subsidios', 'demandados_x_pedido_subsidios.pedidoSubsidioId = ' . $this->tabla . '.id');
        $this->db->join('demandados', 'demandados_x_pedido_subsidios.demandadoId = demandados.id');
        $this->db->join('medicos', 'medicos.matricula = demandados.matricula');
        $this->db->join('causas', 'demandados.causaId = causas.id');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where('demandados_x_pedido_subsidios.estado', 1);

        $results = $this->db->get();

        return $results->result_object();
    }

    function getPendienteId($id) {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.descripcion,
                ' . $this->tabla . '.fecha,
                causas.id causaId,
                causas.fechaInicio fechaActo,
                demandados_x_pedido_subsidios.id dpsId,
                demandados_x_pedido_subsidios.importe,
                demandados_x_pedido_subsidios.motivo,
                demandados_x_pedido_subsidios.estado,
                demandados_x_pedido_subsidios.respuesta,
                medicos.matricula,
                medicos.nombre,
                caratulas.nombre caratula,
                caratulas.nroExpediente,
                caratulas.juzgado,
                caratulas.fiscalia,
                demandados.id demandadoId,
                demandados.seguroId,
                demandados.defendido,
                demandados.subsidiado,
                demandados.seguroColegio,
                demandados.importePolizaSeguroColegio,
                demandados.importePolizaSeguroPersonal			
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('demandados_x_pedido_subsidios', 'demandados_x_pedido_subsidios.pedidoSubsidioId = ' . $this->tabla . '.id');
        $this->db->join('demandados', 'demandados_x_pedido_subsidios.demandadoId = demandados.id');
        $this->db->join('medicos', 'medicos.matricula = demandados.matricula');
        $this->db->join('causas', 'demandados.causaId = causas.id');
        $this->db->join('caratulas', 'caratulas.causaId = causas.id');
        $this->db->where('caratulas.id in (
                                            SELECT max(ssap_caratulas.id) 
                                            FROM ssap_caratulas 
                                            JOIN ssap_causas c
                                            ON c.id = ssap_caratulas.causaId 
                                            WHERE ssap_causas.id = c.id
                                            )');
        $this->db->where('demandados_x_pedido_subsidios.estado', 0);
        $this->db->where('demandados_x_pedido_subsidios.id', $id);

        $results = $this->db->get();

        $results =  $results->result_object();
        
        return $results[0];
    }

}